+2009-02-11 Matthias Clasen <mclasen@redhat.com>
+
+ Bug 571249 – Icons are not drawn properly when initial widget
+ state is insensitive
+
+ * gtk/gtkentry.c (gtk_entry_ensure_pixbuf): Render icons
+ in normal state, regardless of the entrys state. Reported by
+ Enrico Tröger.
+
2009-02-11 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkfilechooserbutton.c: Don't emit the file-set signal
GtkSettings *settings;
gint width, height;
GtkIconInfo *info;
+ gint state;
if (!icon_info || icon_info->pixbuf)
return;
case GTK_IMAGE_PIXBUF:
break;
case GTK_IMAGE_STOCK:
+ state = GTK_WIDGET_STATE (entry);
+ GTK_WIDGET_STATE (entry) = GTK_STATE_NORMAL;
icon_info->pixbuf = gtk_widget_render_icon (GTK_WIDGET (entry),
icon_info->stock_id,
GTK_ICON_SIZE_MENU,
NULL);
+ GTK_WIDGET_STATE (entry) = state;
break;
case GTK_IMAGE_ICON_NAME:
0, NULL);
if (icon_info->pixbuf == NULL)
- icon_info->pixbuf = gtk_widget_render_icon (GTK_WIDGET (entry),
- GTK_STOCK_MISSING_IMAGE,
- GTK_ICON_SIZE_MENU,
- NULL);
+ {
+ state = GTK_WIDGET_STATE (entry);
+ GTK_WIDGET_STATE (entry) = GTK_STATE_NORMAL;
+ icon_info->pixbuf = gtk_widget_render_icon (GTK_WIDGET (entry),
+ GTK_STOCK_MISSING_IMAGE,
+ GTK_ICON_SIZE_MENU,
+ NULL);
+ GTK_WIDGET_STATE (entry) = state;
+ }
}
break;
}
if (icon_info->pixbuf == NULL)
- icon_info->pixbuf = gtk_widget_render_icon (GTK_WIDGET (entry),
- GTK_STOCK_MISSING_IMAGE,
- GTK_ICON_SIZE_MENU,
- NULL);
+ {
+ state = GTK_WIDGET_STATE (entry);
+ GTK_WIDGET_STATE (entry) = GTK_STATE_NORMAL;
+ icon_info->pixbuf = gtk_widget_render_icon (GTK_WIDGET (entry),
+ GTK_STOCK_MISSING_IMAGE,
+ GTK_ICON_SIZE_MENU,
+ NULL);
+ GTK_WIDGET_STATE (entry) = state;
+ }
}
break;